Repository navigation
fix(standard): give drivers only the nullius package on PYTHONPATH - #34
Merged
Merged
Conversation
From the PyPI install the folder holding the package is the tool's whole site-packages, which came before the driver's own environment.
This comment has been minimized.
This comment has been minimized.
The link was written as nullius.<pid>.<thread>.part inside the folder on a driver's PYTHONPATH, then renamed. A driver or a test listing that folder in the meantime saw the .part entry too. Write it beside the folder and rename it in, so the folder only ever holds nullius.
This comment has been minimized.
This comment has been minimized.
Collaborator
Author
|
/judge |
🟡 PR judge · 6 of 7 yes · #34 ↔ #11
Acceptance criteria, 2 of 2 met
Checks the script runs itself, 4 of 4 pass
|
aitianshi
added a commit
that referenced
this pull request
Nov 10, 2026
## What Pull request titles become conventional commit subjects, `type(scope): summary`. The repository squash-merges with the PR title as the commit subject, so the title is what `main`'s history shows. AGENTS.md states the rule with its types (`feat`, `fix`, `perf`, `refactor`, `docs`, `test`, `ci`, `build`, `chore`, `revert`) and scopes (the parts of Nullius), and the `/file-issue` skill, which assistants use to open PRs, applies it. No check enforces it. ## Touches docs and site · CI and skills ## Verified - Backend suite `python3 app/tests/parallel.py`, OK. - The open PRs #29, #30, #32 and #34 already use the form. ## Risk Documentation only; earlier commit subjects on `main` are not rewritten. Undone by a revert.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #11
What
A driver ran with
PYTHONPATHset to the folder that holds thenulliuspackage (run.APP). From a checkout that isapp/; from the PyPI install it is the tool's wholesite-packages, so every package there came before the driver venv's own, and LongMemEval's Python 3.9 driver imported the tool's Python 3.12clickand stopped atunitswith aSyntaxError.run.driver_path()now gives drivers a folder in the user cache whose one entry links to thenulliuspackage, the same from a checkout and from a wheel;run.pyandprove.pyboth use it.APPkeeps its other uses (the docker backend's mount checks and the relay container).Touches
the standard
Verified
app/tests/test_driver_path.py: the driver path holds onlynullius, linked to the real package; a fresh interpreter with it importsnullius.standard.jsonlbut notweb(from the checkout) nor a package besidenulliusin a stand-insite-packages(from a wheel).PYTHONPATHholds nothing else (the link is written beside it and renamed in). It failed before that change, when the.partlink was written inside the folder.main, eachuv tool install --python 3.12into a temporary tool directory and profile; the tool'ssite-packagesholdsclick8.5.1. Thennullius standard run longmemeval keyword-memory --dataset longmemeval_oracle --limit 1 --provider custom --model test-model --judge-model test-model --from-run, with the endpoint pointed at a closed local port so no model is called:main:units: the program ended without replying (SyntaxError: invalid syntax), the issue's failure.stage=units state=start n=1 of=500, then the unit runs and endserror NetworkConnectionErrorat the closed endpoint; no driver log holds aSyntaxError.python3 app/tests/parallel.py: 1596 tests, OK.Risk
A driver that relied on importing something else from
app/or the tool's environment would now fail at import; the bundled drivers import onlynulliusand their own environment. The link lives in the cache, so clearing the cache only means it is made again. The docker relay still mountsAPPand puts it on its ownPYTHONPATHinside its container; that is not a driver and is unchanged here. Undone by a revert.